package com.dupt.system.service;

import java.io.IOException;
import java.util.List;
import com.dupt.system.domain.FileInfo;
import com.dupt.system.domain.vo.FileInfoVo;
import org.springframework.web.multipart.MultipartFile;

/**
 * 文件信息Service接口
 * 
 * @author zhuanyu.sun
 * @date 2025-11-02
 */
public interface IFileInfoService
{
    /**
     * 查询文件信息
     * 
     * @param fileId 文件信息主键
     * @return 文件信息
     */
    public FileInfoVo selectFileInfoByFileId(Long fileId);

    /**
     * 查询文件信息列表
     * 
     * @param fileInfo 文件信息
     * @return 文件信息集合
     */
    public List<FileInfoVo> selectFileInfoList(FileInfo fileInfo);

    /**
     * 新增文件信息
     * 
     * @param fileInfoVo 文件信息
     * @param files 文件
     * @return 结果
     */
    public int insertFileInfo(String fileInfoVo, List<MultipartFile> files) throws IOException;

    /**
     * 修改文件信息
     * 
     * @param fileInfoVo 文件信息
     * @param files 文件
     * @return 结果
     */
    public int updateFileInfo(String fileInfoVo, List<MultipartFile> files) throws IOException;

    /**
     * 批量删除文件信息
     * 
     * @param fileIds 需要删除的文件信息主键集合
     * @return 结果
     */
    public int deleteFileInfoByFileIds(Long[] fileIds);

    /**
     * 删除文件信息信息
     * 
     * @param fileId 文件信息主键
     * @return 结果
     */
    public int deleteFileInfoByFileId(Long fileId);

    /**
     * 根据fileInfoId查询文件信息
     * @param fileInfoId
     * @return
     */
    FileInfoVo selectFileInfoByFileInfoId(Long fileInfoId);
}
